// pages/order/ticket/ticket.js
const app = getApp();

Page({
  /**
   * 页面的初始数据
   */
  data: {
    orderId: '',
    orderDetail: null,
    isLoading: true,
    statusColorMap: {
      1: '#ff6b6b', // 待支付
      2: '#4b7bec', // 已支付
      3: '#4b7bec', // 已完成
      4: '#999999'  // 已取消
    },
    statusTextMap: {
      1: '待支付',
      2: '已支付',
      3: '已完成',
      4: '已取消'
    }
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    if (options && options.id) {
      this.setData({
        orderId: options.id
      });
      this.fetchOrderDetail(options.id);
    }
    
    // 设置导航栏
    wx.setNavigationBarTitle({
      title: '门票订单详情'
    });
  },

  /**
   * 获取订单详情
   */
  fetchOrderDetail(orderId) {
    const _this = this;
    // 显示加载中
    wx.showLoading({
      title: '加载中',
    });

    // 模拟获取订单详情数据 - 实际应该从API获取
    setTimeout(() => {
      // 模拟数据
      const orderDetail = {
        id: orderId,
        orderNo: 'OD10025671',
        type: 1, // 1-门票，2-酒店
        name: '黄山风景区成人票',
        image: '/img/logo.png',
        quantity: 2,
        unitPrice: 190.00,
        totalAmount: 380.00,
        bookDate: '2025-07-01',
        useDate: '2025-07-15',
        status: 1,
        visitorInfo: [
          { name: '张三', idCard: '3301**********1234' },
          { name: '李四', idCard: '3301**********5678' }
        ],
        scenicArea: {
          name: '黄山风景区',
          address: '安徽省黄山市',
          openTime: '06:30-17:30'
        },
        qrCode: '/img/logo.png', // 实际应该是门票二维码图片
        notes: '1. 门票当天有效，请按时使用\n2. 入园需要身份证\n3. 禁止携带易燃易爆物品'
      };
      
      _this.setData({
        orderDetail: orderDetail,
        isLoading: false
      });
      
      wx.hideLoading();
    }, 1000);
  },

  /**
   * 支付订单
   */
  payOrder() {
    wx.showModal({
      title: '确认支付',
      content: '确认支付此订单吗？',
      confirmColor: '#4b7bec',
      success: (res) => {
        if (res.confirm) {
          // 显示加载中
          wx.showLoading({
            title: '处理中...',
          });
          
          // 这里应该调用实际的支付API
          setTimeout(() => {
            wx.hideLoading();
            wx.showToast({
              title: '支付成功',
              icon: 'success'
            });
            
            // 刷新订单详情
            setTimeout(() => {
              this.fetchOrderDetail(this.data.orderId);
            }, 1500);
          }, 1000);
        }
      }
    });
  },

  /**
   * 取消订单
   */
  cancelOrder() {
    wx.showModal({
      title: '确认取消',
      content: '确定要取消此订单吗？',
      confirmColor: '#ff6b6b',
      success: (res) => {
        if (res.confirm) {
          // 显示加载中
          wx.showLoading({
            title: '处理中...',
          });
          
          // 这里应该调用实际的取消订单API
          setTimeout(() => {
            wx.hideLoading();
            wx.showToast({
              title: '订单已取消',
              icon: 'success'
            });
            
            // 刷新订单详情
            setTimeout(() => {
              this.fetchOrderDetail(this.data.orderId);
            }, 1500);
          }, 1000);
        }
      }
    });
  },

  /**
   * 返回上一页
   */
  goBack() {
    wx.navigateBack();
  },

  /**
   * 查看电子票
   */
  viewETicket() {
    wx.showToast({
      title: '查看电子票',
      icon: 'none'
    });
    // 实际应该跳转到电子票页面或预览图片
  }
})